Binary 란?
NOTE
소스코드가 실행 파일이 되기까지의 과정(컴파일 → 링크 → 빌드)과 동적/정적 링크, 패키지 형식을 정리한다.
IMPORTANT
원문을 AI가 검토·보강함(사실 확인 권장).
📌 개념
프로그램 실행 과정
- 컴파일 (Compile)
- 소스코드를 바이너리(기계어) 코드로 변환하는 과정
- 링크 (Link)
- 프로젝트 내 여러 소스 파일을 각각 컴파일하면 서로 참조하는 심볼(함수/변수)이 아직 연결되지 않은 상태다
- 이렇게 분리 컴파일된 오브젝트 파일과 라이브러리를 하나로 묶어 실행 가능한 형태로 연결하는 작업을 “링크”라고 한다
NOTE
동적 링크 vs 정적 링크
- 동적 링크: 프로그램 실행 도중 외부에 존재하는 공유 라이브러리 코드를 찾아 연결 (실행 파일 크기 작음, 라이브러리 공유)
- 정적 링크: 컴파일된 라이브러리 코드를 실행 파일에 포함시켜 하나의 파일 생성 (실행 파일 크기 큼, 배포 간단)
- 빌드 (Build)
- 소스코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 전체 과정
- 전처리, 컴파일, 링크, 패키징 등을 포괄하며 컴파일도 빌드의 일부다
NOTE
대표 빌드 도구 전처리, 컴파일, 패키징, 테스팅, 배포 과정을 돕는다.
- Ant
- Maven
- Gradle
패키지 형식
- 소스 컴파일 패키지
- Linux에서 주로 사용하는 소스 압축 형식 (예:
tar.gz) - 사용자가 직접 컴파일해서 설치
- Linux에서 주로 사용하는 소스 압축 형식 (예:
- 바이너리 패키지
- 실행 파일, 설정 파일, 라이브러리 등을 미리 컴파일해 묶은 형식
- 압축을 풀어 그대로 설치 (예:
rpm,yum,apt방식)